/*
 * list.cpp
 *
 *  Created on: 2024年5月24日
 *      Author: pengzc
 */

#include "slist.h"
#include "http/exception.h"

namespace http {

slist::slist() {
  list_ = NULL;
}

slist::~slist() {
  if (list_) {
    curl_slist_free_all(list_);
  }
}

void slist::add(const std::string& str) {
  auto next = curl_slist_append(list_, str.c_str());
  if (next == NULL) {
    throwHTTPException(CURLE_OUT_OF_MEMORY, "curl_slist_append error");
  }
  list_ = next;
}

bool slist::empty() const {
  return list_ == NULL;
}

curl_slist* slist::list() {
  return list_;
}

} /* namespace curl */
